package Demo1;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class T1 {
    public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学生id");
        int id = scanner.nextInt();
        System.out.println("请输入学生名字");
        String name = scanner.next();

//     1.创建数据源
        //降低耦合 因为mysql/oracle等数据库封装的api不同
        DataSource dataSource = new MysqlDataSource();
//        URL 表示网络上的资源位置  "网址"
//        URL 让jdbc操作mysql
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java109?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("123456");

//        2.建立和数据库之间的连接 连接好了之后,才能进行后续的 请求-响应 交互.
        Connection connection = dataSource.getConnection();
//        3.构造 sql
        String sql = "insert into student values (?,?)";//使用 ? 作为占位符
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setInt(1,id);
        statement.setString(2,name);
        System.out.println("sql:"+statement);

//        4.把sql发给服务器 返回值(n)是一个整数 表示影响到的行数
        int n = statement.executeUpdate();
        System.out.println("n =" +n);

//        5.释放资源 关闭连接
        statement.close();
        connection.close();//后获取的先释放
    }
}
